home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / thinkref / archive / THINKPascalUH2.1.sea / THINKPas Univ Hdr 2.1 / Interfaces / AEObjects.p < prev    next >
Text File  |  1995-09-14  |  12KB  |  314 lines

  1. { Converted with MPW2TPas Tuesday, September 12, 1995 5:07:48 PM }
  2. {}
  3. {     File:        AEObjects.p}
  4. { }
  5. {     Contains:    AppleEvents Interfaces.}
  6. { }
  7. {     Version:    Technology:    System 7.5}
  8. {                 Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18}
  9. { }
  10. {     Copyright:    © 1984-1995 by Apple Computer, Inc.}
  11. {                 All rights reserved.}
  12. { }
  13. {     Bugs?:        If you find a problem with this file, use the Apple Bug Reporter}
  14. {                 stack.  Include the file and version information (from above)}
  15. {                 in the problem description and send to:}
  16. {                     Internet:    apple.bugs@applelink.apple.com}
  17. {                     AppleLink:    APPLE.BUGS}
  18. { }
  19. {}
  20.  
  21. unit AEObjects;
  22. interface
  23.  
  24.  
  25. {$IFC UNDEFINED __AEOBJECTS__}
  26. {$SETC __AEOBJECTS__ := 1}
  27.  
  28.     uses
  29.         ConditionalMacros, Types, Memory, OSUtils, Quickdraw, Events, AppleTalk, Processes, PPCToolbox, EPPC, Notification, AppleEvents, Errors;
  30.  
  31. { $PUSH}
  32. { $ALIGN MAC68K}
  33. { $LibExport+}
  34.  
  35.     const
  36.         kAEAND = 'AND ';                        {  0x414e4420  }
  37.         kAEOR = 'OR  ';                        {  0x4f522020  }
  38.         kAENOT = 'NOT ';                        {  0x4e4f5420  }
  39. {***    ABSOLUTE ORDINAL CONSTANTS    ***}
  40.         kAEFirst = 'firs';                        {  0x66697273  }
  41.         kAELast = 'last';                        {  0x6c617374  }
  42.         kAEMiddle = 'midd';                        {  0x6d696464  }
  43.         kAEAny = 'any ';                        {  0x616e7920  }
  44.         kAEAll = 'all ';                        {  0x616c6c20  }
  45. {***    RELATIVE ORDINAL CONSTANTS    ***}
  46.         kAENext = 'next';                        {  0x6e657874  }
  47.         kAEPrevious = 'prev';                        {  0x70726576  }
  48. {***    KEYWORD CONSTANT     ***}
  49.         keyAECompOperator = 'relo';                        {  0x72656c6f  }
  50.         keyAELogicalTerms = 'term';                        {  0x7465726d  }
  51.         keyAELogicalOperator = 'logc';                        {  0x6c6f6763  }
  52.         keyAEObject1 = 'obj1';                        {  0x6f626a31  }
  53.         keyAEObject2 = 'obj2';                        {  0x6f626a32  }
  54. {    ... for Keywords for getting fields out of object specifier records. }
  55.         keyAEDesiredClass = 'want';                        {  0x77616e74  }
  56.         keyAEContainer = 'from';                        {  0x66726f6d  }
  57.         keyAEKeyForm = 'form';                        {  0x666f726d  }
  58.         keyAEKeyData = 'seld';
  59.  
  60. {    ... for Keywords for getting fields out of Range specifier records. }
  61.         keyAERangeStart = 'star';                        {  0x73746172  }
  62.         keyAERangeStop = 'stop';                        {  0x73746f70  }
  63. {    ... special handler selectors for OSL Callbacks. }
  64.         keyDisposeTokenProc = 'xtok';                        {  0x78746f6b  }
  65.         keyAECompareProc = 'cmpr';                        {  0x636d7072  }
  66.         keyAECountProc = 'cont';                        {  0x636f6e74  }
  67.         keyAEMarkTokenProc = 'mkid';                        {  0x6d6b6964  }
  68.         keyAEMarkProc = 'mark';                        {  0x6d61726b  }
  69.         keyAEAdjustMarksProc = 'adjm';                        {  0x61646a6d  }
  70.         keyAEGetErrDescProc = 'indc';
  71.  
  72. {***    VALUE and TYPE CONSTANTS    ***}
  73. {    ... possible values for the keyAEKeyForm field of an object specifier. }
  74.         formAbsolutePosition = 'indx';                        {  0x696e6478  }
  75.         formRelativePosition = 'rele';                        {  0x72656c65  }
  76.         formTest = 'test';                        {  0x74657374  }
  77.         formRange = 'rang';                        {  0x72616e67  }
  78.         formPropertyID = 'prop';                        {  0x70726f70  }
  79.         formName = 'name';                        {  0x6e616d65  }
  80. {    ... relevant types (some of these are often pared with forms above). }
  81.         typeObjectSpecifier = 'obj ';                        {  0x6f626a20  }
  82.         typeObjectBeingExamined = 'exmn';                        {  0x65786d6e  }
  83.         typeCurrentContainer = 'ccnt';                        {  0x63636e74  }
  84.         typeToken = 'toke';                        {  0x746f6b65  }
  85.         typeRelativeDescriptor = 'rel ';                        {  0x72656c20  }
  86.         typeAbsoluteOrdinal = 'abso';                        {  0x6162736f  }
  87.         typeIndexDescriptor = 'inde';                        {  0x696e6465  }
  88.         typeRangeDescriptor = 'rang';                        {  0x72616e67  }
  89.         typeLogicalDescriptor = 'logi';                        {  0x6c6f6769  }
  90.         typeCompDescriptor = 'cmpd';                        {  0x636d7064  }
  91.         typeOSLTokenList = 'ostl';
  92.  
  93. { Possible values for flags parameter to AEResolve.  They're additive }
  94.         kAEIDoMinimum = $0000;
  95.         kAEIDoWhose = $0001;
  96.         kAEIDoMarking = $0004;
  97.         kAEPassSubDescs = $0008;
  98.         kAEResolveNestedLists = $0010;
  99.         kAEHandleSimpleRanges = $0020;
  100.         kAEUseRelativeIterators = $0040;
  101.  
  102. {*** SPECIAL CONSTANTS FOR CUSTOM WHOSE-CLAUSE RESOLUTION }
  103.         typeWhoseDescriptor = 'whos';                        {  0x77686f73  }
  104.         formWhose = 'whos';                        {  0x77686f73  }
  105.         typeWhoseRange = 'wrng';                        {  0x77726e67  }
  106.         keyAEWhoseRangeStart = 'wstr';                        {  0x77737472  }
  107.         keyAEWhoseRangeStop = 'wstp';                        {  0x77737470  }
  108.         keyAEIndex = 'kidx';                        {  0x6b696478  }
  109.         keyAETest = 'ktst';
  110.  
  111. {*}
  112. {    used for rewriting tokens in place of 'ccnt' descriptors}
  113. {    This record is only of interest to those who, when they...}
  114. {    ...get ranges as key data in their accessor procs, choose}
  115. {    ...to resolve them manually rather than call AEResolve again.}
  116. {*}
  117.  
  118.     type
  119.         ccntTokenRecord = record
  120.                 tokenClass: DescType;
  121.                 token: AEDesc;
  122.             end;
  123.  
  124.         ccntTokenRecPtr = ^ccntTokenRecord;
  125.         ccntTokenRecHandle = ^ccntTokenRecPtr;
  126.  
  127. {$IFC OLDROUTINENAMES }
  128.         DescPtr = ^AEDesc;
  129.         DescHandle = ^DescPtr;
  130.  
  131. {$ENDC}
  132.         OSLAccessorProcPtr = ProcPtr;  { FUNCTION OSLAccessor(desiredClass: DescType; (CONST)VAR container: AEDesc; containerClass: DescType; form: DescType; (CONST)VAR selectionData: AEDesc; VAR value: AEDesc; accessorRefcon: LONGINT): OSErr; }
  133.         OSLCompareProcPtr = ProcPtr;  { FUNCTION OSLCompare(oper: DescType; (CONST)VAR obj1: AEDesc; (CONST)VAR obj2: AEDesc; VAR result: BOOLEAN): OSErr; }
  134.         OSLCountProcPtr = ProcPtr;  { FUNCTION OSLCount(desiredType: DescType; containerClass: DescType; (CONST)VAR container: AEDesc; VAR result: LONGINT): OSErr; }
  135.         OSLDisposeTokenProcPtr = ProcPtr;  { FUNCTION OSLDisposeToken(VAR unneededToken: AEDesc): OSErr; }
  136.         OSLGetMarkTokenProcPtr = ProcPtr;  { FUNCTION OSLGetMarkToken((CONST)VAR dContainerToken: AEDesc; containerClass: DescType; VAR result: AEDesc): OSErr; }
  137.         OSLGetErrDescProcPtr = ProcPtr;  { FUNCTION OSLGetErrDesc(VAR appDescPtr: AEDesc): OSErr; }
  138.         OSLMarkProcPtr = ProcPtr;  { FUNCTION OSLMark((CONST)VAR dToken: AEDesc; (CONST)VAR markToken: AEDesc; index: LONGINT): OSErr; }
  139.         OSLAdjustMarksProcPtr = ProcPtr;  { FUNCTION OSLAdjustMarks(newStart: LONGINT; newStop: LONGINT; (CONST)VAR markToken: AEDesc): OSErr; }
  140.         OSLAccessorUPP = UniversalProcPtr;
  141.         OSLCompareUPP = UniversalProcPtr;
  142.         OSLCountUPP = UniversalProcPtr;
  143.         OSLDisposeTokenUPP = UniversalProcPtr;
  144.         OSLGetMarkTokenUPP = UniversalProcPtr;
  145.         OSLGetErrDescUPP = UniversalProcPtr;
  146.         OSLMarkUPP = UniversalProcPtr;
  147.         OSLAdjustMarksUPP = UniversalProcPtr;
  148.  
  149.     const
  150.         uppOSLAccessorProcInfo = $000FFFE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  151.         uppOSLCompareProcInfo = $00003FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  152.         uppOSLCountProcInfo = $00003FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  153.         uppOSLDisposeTokenProcInfo = $000000E0; { FUNCTION (4 byte param): 2 byte result; }
  154.         uppOSLGetMarkTokenProcInfo = $00000FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  155.         uppOSLGetErrDescProcInfo = $000000E0; { FUNCTION (4 byte param): 2 byte result; }
  156.         uppOSLMarkProcInfo = $00000FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  157.         uppOSLAdjustMarksProcInfo = $00000FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  158.  
  159.     function NewOSLAccessorProc (userRoutine: OSLAccessorProcPtr): OSLAccessorUPP;
  160.     {$IFC NOT GENERATINGCFM }
  161.     inline
  162.         $2E9F;
  163.     {$ENDC}
  164.  
  165.     function NewOSLCompareProc (userRoutine: OSLCompareProcPtr): OSLCompareUPP;
  166.     {$IFC NOT GENERATINGCFM }
  167.     inline
  168.         $2E9F;
  169.     {$ENDC}
  170.  
  171.     function NewOSLCountProc (userRoutine: OSLCountProcPtr): OSLCountUPP;
  172.     {$IFC NOT GENERATINGCFM }
  173.     inline
  174.         $2E9F;
  175.     {$ENDC}
  176.  
  177.     function NewOSLDisposeTokenProc (userRoutine: OSLDisposeTokenProcPtr): OSLDisposeTokenUPP;
  178.     {$IFC NOT GENERATINGCFM }
  179.     inline
  180.         $2E9F;
  181.     {$ENDC}
  182.  
  183.     function NewOSLGetMarkTokenProc (userRoutine: OSLGetMarkTokenProcPtr): OSLGetMarkTokenUPP;
  184.     {$IFC NOT GENERATINGCFM }
  185.     inline
  186.         $2E9F;
  187.     {$ENDC}
  188.  
  189.     function NewOSLGetErrDescProc (userRoutine: OSLGetErrDescProcPtr): OSLGetErrDescUPP;
  190.     {$IFC NOT GENERATINGCFM }
  191.     inline
  192.         $2E9F;
  193.     {$ENDC}
  194.  
  195.     function NewOSLMarkProc (userRoutine: OSLMarkProcPtr): OSLMarkUPP;
  196.     {$IFC NOT GENERATINGCFM }
  197.     inline
  198.         $2E9F;
  199.     {$ENDC}
  200.  
  201.     function NewOSLAdjustMarksProc (userRoutine: OSLAdjustMarksProcPtr): OSLAdjustMarksUPP;
  202.     {$IFC NOT GENERATINGCFM }
  203.     inline
  204.         $2E9F;
  205.     {$ENDC}
  206.  
  207.     function CallOSLAccessorProc (desiredClass: DescType; {CONST}
  208.                                     var container: AEDesc; containerClass: DescType; form: DescType; {CONST}
  209.                                     var selectionData: AEDesc; var value: AEDesc; accessorRefcon: LONGINT; userRoutine: OSLAccessorUPP): OSErr;
  210.     {$IFC NOT GENERATINGCFM}
  211.     inline
  212.         $205F, $4E90;
  213.     {$ENDC}
  214.  
  215.     function CallOSLCompareProc (oper: DescType; {CONST}
  216.                                     var obj1: AEDesc; {CONST}
  217.                                     var obj2: AEDesc; var result: BOOLEAN; userRoutine: OSLCompareUPP): OSErr;
  218.     {$IFC NOT GENERATINGCFM}
  219.     inline
  220.         $205F, $4E90;
  221.     {$ENDC}
  222.  
  223.     function CallOSLCountProc (desiredType: DescType; containerClass: DescType; {CONST}
  224.                                     var container: AEDesc; var result: LONGINT; userRoutine: OSLCountUPP): OSErr;
  225.     {$IFC NOT GENERATINGCFM}
  226.     inline
  227.         $205F, $4E90;
  228.     {$ENDC}
  229.  
  230.     function CallOSLDisposeTokenProc (var unneededToken: AEDesc; userRoutine: OSLDisposeTokenUPP): OSErr;
  231.     {$IFC NOT GENERATINGCFM}
  232.     inline
  233.         $205F, $4E90;
  234.     {$ENDC}
  235.  
  236.     function CallOSLGetMarkTokenProc ({CONST}
  237.                                     var dContainerToken: AEDesc; containerClass: DescType; var result: AEDesc; userRoutine: OSLGetMarkTokenUPP): OSErr;
  238.     {$IFC NOT GENERATINGCFM}
  239.     inline
  240.         $205F, $4E90;
  241.     {$ENDC}
  242.  
  243.     function CallOSLGetErrDescProc (var appDescPtr: AEDesc; userRoutine: OSLGetErrDescUPP): OSErr;
  244.     {$IFC NOT GENERATINGCFM}
  245.     inline
  246.         $205F, $4E90;
  247.     {$ENDC}
  248.  
  249.     function CallOSLMarkProc ({CONST}
  250.                                     var dToken: AEDesc; {CONST}
  251.                                     var markToken: AEDesc; index: LONGINT; userRoutine: OSLMarkUPP): OSErr;
  252.     {$IFC NOT GENERATINGCFM}
  253.     inline
  254.         $205F, $4E90;
  255.     {$ENDC}
  256.  
  257.     function CallOSLAdjustMarksProc (newStart: LONGINT; newStop: LONGINT; {CONST}
  258.                                     var markToken: AEDesc; userRoutine: OSLAdjustMarksUPP): OSErr;
  259.     {$IFC NOT GENERATINGCFM}
  260.     inline
  261.         $205F, $4E90;
  262.     {$ENDC}
  263.  
  264.     function AEObjectInit: OSErr;
  265. { Not done by inline, but by direct linking into code.  It sets up the pack}
  266. {  such that further calls can be via inline }
  267.     function AESetObjectCallbacks (myCompareProc: OSLCompareUPP; myCountProc: OSLCountUPP; myDisposeTokenProc: OSLDisposeTokenUPP; myGetMarkTokenProc: OSLGetMarkTokenUPP; myMarkProc: OSLMarkUPP; myAdjustMarksProc: OSLAdjustMarksUPP; myGetErrDescProcPtr: OSLGetErrDescUPP): OSErr;
  268.     {$IFC NOT GENERATINGCFM}
  269.     inline
  270.         $303C, $0E35, $A816;
  271.     {$ENDC}
  272.     function AEResolve ({CONST}
  273.                                     var objectSpecifier: AEDesc; callbackFlags: INTEGER; var theToken: AEDesc): OSErr;
  274.     {$IFC NOT GENERATINGCFM}
  275.     inline
  276.         $303C, $0536, $A816;
  277.     {$ENDC}
  278.     function AEInstallObjectAccessor (desiredClass: DescType; containerType: DescType; theAccessor: OSLAccessorUPP; accessorRefcon: LONGINT; isSysHandler: BOOLEAN): OSErr;
  279.     {$IFC NOT GENERATINGCFM}
  280.     inline
  281.         $303C, $0937, $A816;
  282.     {$ENDC}
  283.     function AERemoveObjectAccessor (desiredClass: DescType; containerType: DescType; theAccessor: OSLAccessorUPP; isSysHandler: BOOLEAN): OSErr;
  284.     {$IFC NOT GENERATINGCFM}
  285.     inline
  286.         $303C, $0738, $A816;
  287.     {$ENDC}
  288.     function AEGetObjectAccessor (desiredClass: DescType; containerType: DescType; var accessor: OSLAccessorUPP; var accessorRefcon: LONGINT; isSysHandler: BOOLEAN): OSErr;
  289.     {$IFC NOT GENERATINGCFM}
  290.     inline
  291.         $303C, $0939, $A816;
  292.     {$ENDC}
  293.     function AEDisposeToken (var theToken: AEDesc): OSErr;
  294.     {$IFC NOT GENERATINGCFM}
  295.     inline
  296.         $303C, $023A, $A816;
  297.     {$ENDC}
  298.     function AECallObjectAccessor (desiredClass: DescType; {CONST}
  299.                                     var containerToken: AEDesc; containerClass: DescType; keyForm: DescType; {CONST}
  300.                                     var keyData: AEDesc; var token: AEDesc): OSErr;
  301.     {$IFC NOT GENERATINGCFM}
  302.     inline
  303.         $303C, $0C3B, $A816;
  304.     {$ENDC}
  305.  
  306. { $ALIGN RESET}
  307. { $POP}
  308.  
  309. {$ENDC}
  310.  {__AEOBJECTS__}
  311.  
  312. implementation
  313. end.
  314.